package com.mall.b2c.service;

import net.sf.json.JSONObject;

import com.mall.b2c.domain.order.CartDomain;
import com.mall.common.service.BaseService;

/**
 * service接口 - 购物车
 */
public interface CartService extends BaseService<CartDomain, Long> {
	
	/**
	 * 获取购物车
	 * @param memberId 会员id
	 * @param key 未登录时购物车的key
	 * @return
	 */
	public CartDomain getCurrent(Long memberId, String key);
	
	/**
	 * 加入购物车
	 * @param memberId 会员id
	 * @param key 未登录时购物车的key
	 * @param goodsId 商品id
	 * @param num 数量
	 * @return 购物车信息
	 */
	public JSONObject addCart(Long memberId, String key, Long goodsId, Integer num);

	/**
	 * 加入积分购物车
	 * @param memberId
	 * @param key
	 * @param id
	 * @param num
	 * @return
	 */
	public JSONObject addCart2(Long memberId, String key, Long id, Integer num);

	/**
	 * 批量加入购物车
	 * @param memberId 会员id
	 * @param goodsIds 商品id
	 * @return
	 */
	public JSONObject batchAddCartItem(Long memberId, Long[] goodsIds);
	
	/**
	 * 修改购物车项数量
	 * @param memberId 会员id
	 * @param itemId 购物车项id
	 * @param num 数量
	 */
	public void modifyCartItem(Long memberId, Long itemId, Integer num);

	/***
	 * 修改积分购物车
	 * @param memberId
	 * @param itemId
	 * @param num
	 */
	public void modifyCartItem2(Long memberId, Long itemId, Integer num);

	/**
	 * 移出购物车项
	 * @param memberId 会员id
	 * @param itemIds 购物车项id
	 * @return 购物车信息
	 */
	public JSONObject deletecartItem(Long memberId, Long[] itemIds);


	/**
	 * 移出积分购物车
	 * @param memberId
	 * @param itemIds
	 * @return
	 */
	public JSONObject deletecartItem2(Long memberId, Long[] itemIds);

	/**
	 * 购物车结算
	 * @param memberId 会员id
	 * @param itemIds 购物车项id
	 * @return
	 */
	public JSONObject checkItems(Long memberId, Long[] itemIds);
	public JSONObject checkItems2(Long memberId, Long[] itemIds);
}
